﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;

using BusinessObjects.BusinessRules;

namespace BusinessObjects
{
    /// <summary>
    /// Class that holds information about a product category.
    /// </summary>
    /// <remarks>
    /// Enterprise Design Pattern: Domain Model, Identity Field.
    /// 
    /// This is where your business logic resides. In this example there are none.
    /// Another place for business logic and business rules is in the Facade.  
    /// For an example see CustomerFacade in the Facade layer.
    /// 
    /// The Domain Model Design Pattern states that domain objects incorporate 
    /// both behavior and data. Behavior may include simple or complex business logic.
    /// 
    /// The Identity Field Design Pattern saves the ID field in an object to maintain
    /// identity between an in-memory business object and that database rows.
    /// </remarks>
    public class Traffic : BusinessObject
    {
        /// <summary>
        /// Default constructor. Establishes simple business rules.
        /// </summary>
        public Traffic()
        {

        }

        public Traffic(string trafficName,int trafficId, int supplierId, int serviceId, int trafficTypeId, int driverId, int subDriverId1, int subDriverId2, int layer, int l1RowNumber, int l1NCPR, int l2RowNumber, int l2NCPR, string description, string picture, int status)
            : this()
        {
            TrafficId = trafficId;
            SupplierId = supplierId;
            TrafficName = trafficName;
            ServiceId = serviceId;
            TrafficTypeId = trafficTypeId;
            DriverId = driverId;
            SubDriverId1 = subDriverId1;
            SubDriverId2 = subDriverId2;
            Layer = layer;
            L1RowNumber = l1RowNumber;
            L1NCPR = l1NCPR;
            L2RowNumber = l2RowNumber;
            L2NCPR = l2NCPR;
            Description = description;
            Picture = picture;
            Status = status;
        }

        /// <summary>
        /// Gets or sets unique category identifier.
        /// The Identity Field Design Pattern. 
        /// </summary>
        public int TrafficId { get; set; }

        public string TrafficName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int SupplierId { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int ServiceId { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int TrafficTypeId { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int DriverId { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int SubDriverId1 { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int SubDriverId2 { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int Layer { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int L1RowNumber { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int L1NCPR { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int L2RowNumber { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int L2NCPR { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public string Description { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public string Picture { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public string Version { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int Status { get; set; }
    }
}
